package com.wingice.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wingice.system.entity.SysDepartment;
import com.wingice.system.vo.SysDepartmentView;

import java.util.List;

/**
 * <p>
 * 部门信息 服务类
 * </p>
 *
 * @author 胡昊
 * @since 2023-04-10
 */
public interface SysDepartmentService extends IService<SysDepartment> {

    /**
     * @param sysDepartment 部门信息
     * @description 新增部门
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2023/4/10 15:10
     */
    Boolean insertSysDepartment(SysDepartment sysDepartment);

    /**
     * @param idList 待删除id列表
     * @description 删除部门
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2023/4/10 16:10
     */
    Boolean deleteBatch(List<String> idList);

    /**
     * @param sysDepartment 部门信息
     * @description 更新部门
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2023/4/10 17:02
     */
    Boolean updateSysDepartment(SysDepartment sysDepartment);

    /**
     * @param departmentId 部门id
     * @description 查询指定部门以及下属子部门id列表
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2022/11/1 14:11
     */
    List<String> listSubDepartmentIdList(String departmentId);

    /**
     * @description 查询部门树
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2023/4/10 17:21
     */
    List<SysDepartmentView> treeSysDepartment();
}
